Zum Hauptinhalt springen
Version: 5.0

Einleitung

Dieses Dokument beschreibt die API von TimePunch. Ziel ist, den Entwickler in die Lage zu versetzen, mit dem Backend von TimePunch zu kommunizieren, Daten auszutauschen, und so TimePunch in die IT-Infrastruktur besser integrieren zu können.

Installation

Die TimePunch API wird mit dem TimePunch Application Server installiert und ausgeliefert.

Zugriff

Im Server werden durch einen Klick auf das Menü „API“ eine Übersicht der exportierten Services, sowie der Servicepfad abgerufen.

Service-Formate

Die TimePunch API arbeitet auf Basis der Windows Communication Foundation (WCF). Die Services können mittels WS und SOAP-Binding angesprochen werden.

Eine Web API ist geplant, aber zurzeit noch nicht verfügbar.

WS-http Binding:

Die WS-http Binding Adresse entspricht immer der Adresse die im TimePunch Server gelistet ist: z.B. http://tpServer/TimePunch/API/TpAuth.svc

Basic-http Binding (SOAP Binding):

Die Adresse des Basic-http Binding, oder SOAP Binding, entspricht der WS-Binding Adresse mit einem angehängten SOAP. z.B. http://tpServer/TimePunch/API/TpAuth.svc/soap

Zugriff über das TimePunch Web API Nuget Package

Seit Version 4.8 bietet TimePunch ein TimePunch Web API Nuget-Paket für den einfachen Zugriff auf die TimePunch-Webdienste.

Es kann unter dem Namen: TpWebWcf installiert werden.

NuGet Gallery | TpWebWcf

Und ist aufgrund der netStandard2.0-Konformität mit allen .net-Frameworks kompatibel.

Mit einem TimePunch Application Server verbinden

Um sich mit einem TimePunch Application Server zu verbinden, muss ein neues TimePunchInstance Objekt erstellt werden.

// Connect to the TimePunch Server

var timePunchInstance
= new TimePunchInstance(new Uri("https://demo.timepunch-hub.com/TimePunch"));

Den Anwender authentifizieren

Um sicherzustellen, dass der Benutzer auf die TimePunch-Instanz zugreifen darf, muss ein Authentifizierungsobjekt erstellt werden.

// Create an authentication object

var adminAuthentication
= TimePunchInstance.CreateAuthentication("{user}", "{pwd}");

Hinweis: Der Identitätsparameter (dritter Parameter) kann verwendet werden, um auf ein anderes TimePunch-Benutzerprofil zuzugreifen, mit den Rechten des Principals, welcher der Anmeldebenutzer ist (erster Parameter).

Erstellen einer Serviceverbindung

Der nächste Schritt besteht darin, eine Serviceverbindung zu erstellen. Dies kann der Projektdienst sein, wie im Beispiel, oder jeder andere Service, den TimePunch anbietet.

// Create the project service

var projectService = timePunchInstance.CreateProjectService();

Aufruf eines Web-Services

Schließlich können wir den Serviceaufruf ausführen und die Antwort validieren.

// Execute Project search

var spr = new SearchProjectsRequest(adminAuthentication, new ProjectSearchDto());

var response = projectService.SearchProjects(spr);

// Output projects

if (response.fault != null)

{

Console.WriteLine("Error: " + response.fault.Message);

return;

}

response.SearchProjectsResult
.ForEach(p => Console.WriteLine($"--> {p.ProjectName}"));